export class Verify {
  /** ## 是否数组 */
  static isArray(value: any) {
    if (typeof Array.isArray === 'function') {
      return Array.isArray(value)
    }
    return (
      Object.prototype.toString.call(value)
      === '[object Array]'
    )
  }

  /** ## 是否对象 */
  static isObject(value: any) {
    return (
      Object.prototype.toString.call(value)
      === '[object Object]'
    )
  }

  /** ## 是否为空 */
  static isEmpty(value: any) {
    switch (typeof value) {
      case 'undefined':
        return true
      case 'string':
        if (
          value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '')
            .length === 0
        ) {
          return true
        }
        break
      case 'boolean':
        if (!value)
          return true
        break
      case 'number':
        if (value === 0 || Number.isNaN(value))
          return true
        break
      case 'object':
        if (value === null || value.length === 0)
          return true
        // for (const i in value) {
        //   return false;
        // }
        return true
    }
    return false
  }
}
